package cm.tl.pms.common.entity;


/**
 * @Auther: lwp
 * @Date: 2022/10/19 - 10 - 19 - 16:47
 * @Description 农行活动名称与编码枚举类
 * @version: 1.0
 */
public enum ErrorEnum implements ConverterBaseEnum {

    /**
     * 错误码
     */
    SUCCESS("00000", "操作成功!"),
    FALSE("00001", "操作失败!"),

    // 系统级  100开头
    SYSTEM_ERROR("10000", "系统错误!"),
    TIME_OUT_ERROR("10001", "连接超时!"),
    PARAM_ERROR("10002", "参数错误!"),
    SAVE_ERROR("10003", "新增失败!"),
    UPDATE_ERROR("10004", "更新失败!"),
    DELETE_ERROR("10005", "删除失败!"),
    DATABASES_ERROR("10006", "数据库链接异常!"),
    COCHAIN_ERROR("10007", "上链失败!"),
    VERIFICATION_ERROR("10008", "核验失败!"),
    COPYRIGHT_TRACING_ERROR("10009", "追溯失败!"),
    WATERMARK_RECOGNITIOIN_ERROR("10010", "水印识别失败!"),
    USER_NAME_AND_PWD_ISNULL("10011", "用户名和密码不能为空!"),
    USER_NAME_AND_PWD_ERROR("10011", "用户名或者密码错误!"),
    RE_SAVE_ERROR("10013", "新增失败!已经存在当前数据！"),
    PARSING_FAILED_ERROR("10014", "解析失败!"),
    ERROR_ENUM10015("10015", "请传入对应的枚举值!"),

    ERROR_ENUM10019("10019", "发送短信频繁，请勿重复发送，60s后再重试!"),
    ERROR_ENUM10020("10020", "发送短信验证码失败!"),
    ERROR_ENUM10021("10021", "密码最小长度不低于8位，至少包含大小写字母、数字和特殊字符!"),
    ERROR_ENUM10022("10022", "两次密码不一致！"),
    ERROR_ENUM10023("10023", "用户名已存在！"),
    ERROR_ENUM10024("10024", "验证码无效！"),
    ERROR_ENUM10025("10025", "非预留手机号！"),
    ERROR_ENUM10026("10026", "非预留邮箱！"),
    ERROR_ENUM10027("10027", "手机号已注册！"),
    ERROR_ENUM10028("10028", "邮箱已注册！"),
    NO_PERMISSION("10029", "此账号无角色，请联系管理员！"),


    // 运行时异常 11开头
    USER_ID_ERROR("11000", "用户id为空!"),
    COUPON_ID_ERROR("11001", "优惠券id为空!"),
    USER_IS_NULL_ERROR("11002", "用户不存在!"),
    RED_PACKET_IS_NULL("11003", "红包id为空!"),
    GET_RED_PACKET_IS_NULL("11004", "领取红包id为空!"),
    TEMPORARILY_NOT_OPENED("11005", "暂未开放，敬请期待!"),
    USER_IS_EXIST_ERROR("11006", "用户已经存在!"),
    STATUS_EXIST_ERROR("11007", "修改状态为空!"),
    DIV_EXIST_ERROR("11008", "部门id为空!"),
    AUTHDIV_EXIST_ERROR("11009", "指标权限id为空!"),
    UNXJBC_EXIST_ERROR("11010", "请确认传入参数是否正确!"),


    // 用户操作不当异常 2开头,
    INCOMPLETE_PARAM_ERROR("20000", "请填写完整信息!"),
    MOBILE_ERROR("20001", "请输入正确的手机号!"),
    EMAIL_ERROR("20023", "请输入正确的邮箱!"),
    UNPHONE_ERROR("20002", "您没有领取资格!"),
    NON_RECLAIMABLE_ERROR("20003", "不可重复领取!"),
    OUT_OF_TIME_ERROR("20004", "不在活动时间段内!"),
    UN_GET_COUPON_ERROR("20005", "还未领取优惠券!"),
    USE_COUPON_ERROR("20006", "已使用过该优惠券!"),
    UN_GET_RED_PACKET_ERROR("20007", "还未领取红包!"),
    USE_RED_PACKET_ERROR("20008", "已使用过该红包!"),
    VERIFY_WATERMACK_USER_NAME_INCONFORMITY("20009", "核验水印发布人不一致!"),
    VERIFY_WATERMACK_INFO_ERROR("20010", "水印信息不一致!"),
    VERIFY_WATERMACK_UPLINK_ERROR("20011", "水印上链信息不一致!"),
    NOT_FOUND_WATERMACK("20012", "未找到此水印!"),
    NOT_FOUND_FILE("20012", "文件不存在!"),
    UNDIV_ERROR("20014", "请选择部门!"),
    UNDIVUSER_ERROR("20015", "请选择部门人员权限!"),
    UNRE_SYS_ERROR("20012", "请不要再次操作!"),
    QUER_SYS_ERROR("20016", "未查询到符合条件的信息!"),
    UPDA_SYS_ERROR("20017", "当前用户权限不足!请确认是否为部门管理员！"),
    CURR_MODEL_INEXISTENCE("20018", "当前模型不存在!"),
    FORMULA_BE_IN_USE("20019", "当前公式被使用中!"),
    FORMULA_INEXISTENCE("20020", "公式不存在!"),
    KPI_BE_IN_USE("20021", "当前指标被使用中!"),
    WATERMARK_UNEQUAL_MATERIAL("20022", "水印数量与素材数量不一致!"),


    ;

    /**
     * 状态码
     */
    private String code;
    /**
     * 返回信息
     */
    private String msg;

    ErrorEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public static String getErrorNo(String code) {
        for (ErrorEnum campTypeEnum : values()) {
            if (campTypeEnum.code.equals(code)) {
                return campTypeEnum.msg;
            }
        }
        return null;
    }

    public static String getErrorName(String eventNo) {
        ErrorEnum[] values = values();
        for (ErrorEnum campTypeEnum : values) {
            if (campTypeEnum.msg.equals(eventNo)) {
                return campTypeEnum.code;
            }
        }
        return null;
    }

    @Override
    public String toViewValue() {
        return code;
    }

    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getMsg() {
        return msg;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}
